package com.haixiaoke.saas.user.service.impl;

import java.util.List;

import com.haixiaoke.saas.user.domain.BizUserDept;
import com.haixiaoke.saas.user.mapper.BizUserDeptMapper;
import com.haixiaoke.saas.user.service.IBizUserDeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 用户与机构部门关联关系Service业务层处理
 * 
 * @author panda
 * @date 2024-05-08
 */
@Service
public class BizUserDeptServiceImpl implements IBizUserDeptService {
    @Autowired
    private BizUserDeptMapper userDeptMapper;

    /**
     * 查询用户与机构部门关联关系
     * 
     * @param userId 用户与机构部门关联关系主键
     * @return 用户与机构部门关联关系
     */
    @Override
    public BizUserDept selectUserDeptByUserId(Long userId) {
        return userDeptMapper.selectUserDeptByUserId(userId);
    }

    /**
     * 查询用户与机构部门关联关系列表
     * 
     * @param userDept 用户与机构部门关联关系
     * @return 用户与机构部门关联关系
     */
    @Override
    public List<BizUserDept> selectUserDeptList(BizUserDept userDept) {
        return userDeptMapper.selectUserDeptList(userDept);
    }

    /**
     * 新增用户与机构部门关联关系
     * 
     * @param userDept 用户与机构部门关联关系
     * @return 结果
     */
    @Override
    public int insertUserDept(BizUserDept userDept) {
        return userDeptMapper.insertUserDept(userDept);
    }

    /**
     * 修改用户与机构部门关联关系
     * 
     * @param userDept 用户与机构部门关联关系
     * @return 结果
     */
    @Override
    public int updateUserDept(BizUserDept userDept) {
        return userDeptMapper.updateUserDept(userDept);
    }

    /**
     * 批量删除用户与机构部门关联关系
     * 
     * @param userIds 需要删除的用户与机构部门关联关系主键
     * @return 结果
     */
    @Override
    public int deleteUserDeptByUserIds(Long[] userIds) {
        return userDeptMapper.deleteUserDeptByUserIds(userIds);
    }

    /**
     * 删除用户与机构部门关联关系信息
     * 
     * @param userId 用户与机构部门关联关系主键
     * @return 结果
     */
    @Override
    public int deleteUserDeptByUserId(Long userId) {
        return userDeptMapper.deleteUserDeptByUserId(userId);
    }

    @Override
    public int deleteUserDeptByUserIdAndTenantId(Long userId, String tenantId) {
        return userDeptMapper.deleteUserDeptByUserIdAndTenantId(userId, tenantId);
    }
}
